//class Solution {
//public:
//    int deleteAndEarn(vector<int>& nums) {
//        int numssize = nums.size();
//        if (numssize == 1)return nums[0];
//        sort(nums.begin(), nums.end());
//        vector<int> cnt(nums[nums.size() - 1] + 1);
//        for (auto e : nums) {
//            cnt[e]++;
//        }
//        //
//        int size = cnt.size();
//        vector<int> yes(size);
//        vector<int> no(size);
//        yes[0] = cnt[0];
//        no[0] = 0;
//        for (int i = 1; i < size; i++) {
//            yes[i] = cnt[i] * i + no[i - 1];
//            no[i] = max(no[i - 1], yes[i - 1]);
//        }
//        return max(yes[size - 1], no[size - 1]);
//    }
//};